#include<graphics.h>
#include<conio.h>
#include<stdio.h>

int main()
{
	float Pi = 3.14159;
    initgraph(1000,800);//打开一个窗口1200*900
	setbkcolor(RGB(128, 128, 128));//窗口绘制背景色为灰色
	cleardevice();//以背景色清空画布

	int center_x=100;
	int center_y=100;
	int r=100;//定义出扇形所在的圆的圆心及半径；
	circle(center_x, center_y, r);//画出扇形所在的不填充圆；
	
	int i;
	float offset;
	float totaloffset = 0;//不同半径之间角度偏移；

	while (1)//不断循环，达到切换颜色
	{
		for (center_x = 100; center_x <= 900; center_x += 200)//绘制多个圆 
		{
			for (center_y = 100; center_y <= 700; center_y += 200)//绘制多个圆
			{
				float h = rand() % 180;
				COLORREF color1 = HSVtoRGB(h, 0.9, 0.8);
				COLORREF color2 = HSVtoRGB(h + 180, 0.9, 0.8);//使颜色随机
				for (r = 100; r > 0; r -= 25)//让圆有多层；
				{
					int left = center_x - r;
					int top = center_y - r;
					int right = center_x + r;
					int bottom = center_y + r;//将扇形定义在一个不填充圆内；

					for (i = 0; i < 20; i++)//使单元扇形构成整个圆；
					{
						offset = i * Pi / 10 + totaloffset;
						setfillcolor(color1);//随机色
						solidpie(left, top, right, bottom, offset, 2 * Pi / 60 + offset);//画填充扇形
						setfillcolor(RGB(255, 255, 255));//白色
						solidpie(left, top, right, bottom, 2 * Pi / 60 + offset, 3 * Pi / 60 + offset);
						setfillcolor(color2);
						solidpie(left, top, right, bottom, 3 * Pi / 60 + offset, 5 * Pi / 60 + offset);
						setfillcolor(RGB(0, 0, 0));//黑色
						solidpie(left, top, right, bottom, 5 * Pi / 60 + offset, 6 * Pi / 60 + offset);//扇形所在圆的外切正方形的
						//（左上角横坐标，纵坐标，右下角横坐标，纵坐标，扇形起始角，终止角）
					}
					totaloffset += Pi / 60;
				}
			}
		}
		_getch();//暂停，等待键输入；
	}
	return 0;
}